"""
写操作 不再获取数据 而是为了改变数据
"""
import pymysql

kwargs = {
    'host': 'localhost',
    'port': 3306,
    'user': 'root',
    'password': '123456',
    'database': 'stu',
    'charset': 'utf8'
}
# 连接数据库\生成游标
db = pymysql.connect(**kwargs)  # 解压字典传参
cur = db.cursor()

# # 操作数据 写 insert into / delete / update  set
# # 1.InnoDB
# sql = "update class set score=99 where name='aaa'"  # 字符串内必须是语法完全正确的sql语句
# # 引擎是InnoDB 不能改 因为InnoDB支持事务, 在使用pyMysql写操作 如果数据表引擎支持事务 默认自动开启事务
# cur.execute(sql)
# db.commit()
#
# # 2.MyISAM
# sql = "update hobby set price=price-500 where hobby LIKE '%dance%'"
# # 引擎是MyISAM 可以改 因为MyISAM不支持事务
# cur.execute(sql)
# db.commit()  # 如果不知道数据表的存储引擎是否支持事务,可以加上此句,因为对于不支持事务的数据表也不算错


# 一系列写操作的操作模式
try:
    # 一系列写操作
    sql = "update class set score=99 where id=%s and name=%s;"  # %s就不用再加''了
    cur.execute(sql, (1, 'aaa'))
    sql = "update hobby set price=price-500 where hobby LIKE '%dance%'"
    cur.execute(sql)

    db.commit()
except Exception as e:
    print(e)
    db.rollback()

# 关闭游标\断开数据库连接
cur.close()
db.close()
